package at.fhooe.mc.data;

/**
 * the polled data from the elevator
 *
 * @author Thomas Wirth
 *
 */
public class ElevatorData {
	private int elevatorIndex;
	private ControlMode mode;
	private DirectionType committedDirection;
	private int elevatorAccel;
	private boolean[] elevatorButton;
	private DoorState elevatorDoorStatus;
	private int elevatorFloor;
	private int elevatorPosition;
	private int elevatorSpeed;
	private int elevatorWeight;
	private int elevatorCapacity;
	private boolean[] servicesFloors;
	private int currentTarget;

	public ElevatorData(int numberOfFloors, ControlMode _mode) {
		elevatorButton = new boolean[numberOfFloors];
		servicesFloors = new boolean[numberOfFloors];

		mode = _mode;
	}

	/**
	 * @return the elevatorIndex
	 */
	public int getElevatorIndex() {
		return elevatorIndex;
	}

	/**
	 * @param elevatorIndex
	 *            the elevatorIndex to set
	 */
	public void setElevatorIndex(int elevatorIndex) {
		this.elevatorIndex = elevatorIndex;
	}

	/**
	 * @return the mode
	 */
	public ControlMode getMode() {
		return mode;
	}

	/**
	 * @return the committedDirection
	 */
	public DirectionType getCommittedDirection() {
		return committedDirection;
	}

	/**
	 * @param committedDirection
	 *            the committedDirection to set
	 */
	public void setCommittedDirection(DirectionType committedDirection) {
		this.committedDirection = committedDirection;
	}

	/**
	 * @return the elevatorAccel
	 */
	public int getElevatorAccel() {
		return elevatorAccel;
	}

	/**
	 * @param elevatorAccel
	 *            the elevatorAccel to set
	 */
	public void setElevatorAccel(int elevatorAccel) {
		this.elevatorAccel = elevatorAccel;
	}

	/**
	 * @return the elevatorButton
	 */
	public boolean[] getElevatorButton() {
		return elevatorButton;
	}

	/**
	 * @return the elevatorDoorStatus
	 */
	public DoorState getElevatorDoorStatus() {
		return elevatorDoorStatus;
	}

	/**
	 * @param elevatorDoorStatus
	 *            the elevatorDoorStatus to set
	 */
	public void setElevatorDoorStatus(DoorState elevatorDoorStatus) {
		this.elevatorDoorStatus = elevatorDoorStatus;
	}

	/**
	 * @return the elevatorFloor
	 */
	public int getElevatorFloor() {
		return elevatorFloor;
	}

	/**
	 * @param elevatorFloor
	 *            the elevatorFloor to set
	 */
	public void setElevatorFloor(int elevatorFloor) {
		this.elevatorFloor = elevatorFloor;
	}

	/**
	 * @return the elevatorPosition
	 */
	public int getElevatorPosition() {
		return elevatorPosition;
	}

	/**
	 * @param elevatorPosition
	 *            the elevatorPosition to set
	 */
	public void setElevatorPosition(int elevatorPosition) {
		this.elevatorPosition = elevatorPosition;
	}

	/**
	 * @return the elevatorSpeed
	 */
	public int getElevatorSpeed() {
		return elevatorSpeed;
	}

	/**
	 * @param elevatorSpeed
	 *            the elevatorSpeed to set
	 */
	public void setElevatorSpeed(int elevatorSpeed) {
		this.elevatorSpeed = elevatorSpeed;
	}

	/**
	 * @return the elevatorWeight
	 */
	public int getElevatorWeight() {
		return elevatorWeight;
	}

	/**
	 * @param elevatorWeight
	 *            the elevatorWeight to set
	 */
	public void setElevatorWeight(int elevatorWeight) {
		this.elevatorWeight = elevatorWeight;
	}

	/**
	 * @return the elevatorCapacity
	 */
	public int getElevatorCapacity() {
		return elevatorCapacity;
	}

	/**
	 * @param elevatorCapacity
	 *            the elevatorCapacity to set
	 */
	public void setElevatorCapacity(int elevatorCapacity) {
		this.elevatorCapacity = elevatorCapacity;
	}

	/**
	 * @return the servicesFloors
	 */
	public boolean[] getServicesFloors() {
		return servicesFloors;
	}

	/**
	 * @return the currentTarget
	 */
	public int getCurrentTarget() {
		return currentTarget;
	}

	/**
	 * @param currentTarget
	 *            the currentTarget to set
	 */
	public void setCurrentTarget(int currentTarget) {
		this.currentTarget = currentTarget;
	}

}
